import 'package:flutter/material.dart';

class AssetImagePage extends StatelessWidget {
  const AssetImagePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('AssetImage 全属性示例')),
      body: Center(
        child: Image(
          image: const AssetImage('assets/images/sample.png'), // 本地图片路径（记得添加到 pubspec.yaml）

          // 尺寸相关
          width: 200,
          height: 200,
          fit: BoxFit.contain, // 填充方式
          alignment: Alignment.center, // 对齐方式
          repeat: ImageRepeat.noRepeat, // 是否重复绘制图像

          // 缓存尺寸（会影响内存占用）
          // cacheWidth: 400,
          // cacheHeight: 400,

          // 图像渲染质量
          filterQuality: FilterQuality.high,

          // 着色与混合模式
          color: Colors.green.withOpacity(0.3),
          colorBlendMode: BlendMode.darken,

          // 语义信息
          semanticLabel: '示例图像',
          excludeFromSemantics: false,

          // 构建时处理帧
          frameBuilder: (context, child, frame, wasSynchronouslyLoaded) {
            return AnimatedOpacity(
              opacity: frame == null ? 0 : 1,
              duration: const Duration(milliseconds: 500),
              child: child,
            );
          },

          // 错误构建器（一般 asset 不常触发）
          errorBuilder: (context, error, stackTrace) {
            return const Icon(Icons.broken_image, size: 100, color: Colors.red);
          },

          // 抗锯齿
          isAntiAlias: true,
        ),
      ),
    );
  }
}
